Carlos Garnacho [Tue, 27 May 2014 10:14:52 +0000 (12:14 +0200)]
widget: Change GtkCapturePhase behavior in event controllers' handling
Previously, there would be globally just a capture and a bubble phase,
with the event just going down the hierarchy once, and the up once.
GTK_PHASE_TARGET actually meaning "run within event handlers", so in
a hierarchy of 3 widgets, emission would be:
Capture(C)
Capture(B)
Capture(A)
Target(A) (if event handlers allow)
Bubble(A)
Target(B) (if event handlers allow)
Bubble(B)
Target(C) (if event handlers allow)
Bubble(C)
This commit changes this behavior and uses GTK_PHASE_TARGET in a less
misleading way, running only on the widget that was meant to receive
the event. And GTK_PHASE_BUBBLE has taken over the execution place of
GTK_PHASE_TARGET, so the emission remains:
Capture(C)
Capture(B)
Capture(A)
Target(A)
Bubble(A) (if event handlers allow)
Bubble(B) (...)
Bubble(C) (...)
As it was, GTK_PHASE_BUBBLE was useful for running event controllers
paralelly to event handlers, without modifying a single line in those.
For those mixed scenarios, Any of the other phases will have to be
used at discretion, or the event handlers eventually changed to chain
up and let the default event handlers in GtkWidget to be run.
Carlos Garnacho [Tue, 27 May 2014 10:14:17 +0000 (12:14 +0200)]
window: Avoid double event processing in the multipress event controller
The events to those are fed outside the regular event propagation scheme,
through _gtk_window_check_handle_wm_event(), so set the controller to
GTK_PHASE_NONE so events aren't processed first manually, and then
automatically.
Carlos Garnacho [Mon, 26 May 2014 12:32:59 +0000 (14:32 +0200)]
gesturezoom: Just return a double in get_scale_delta()
Checking whether the gesture is active is a responsibility of the caller.
Carlos Garnacho [Mon, 26 May 2014 12:29:17 +0000 (14:29 +0200)]
gesturerotate: Just return a double in get_angle_delta()
Whether the gesture is active or recognized should be checked before in
callers, or just not used naively.
Carlos Garnacho [Mon, 26 May 2014 12:02:30 +0000 (14:02 +0200)]
gesture: Replace gtk_gesture_attach/detach with event controller API
Event controllers now auto-attach, and the GtkCapturePhase only determines
when are events dispatched, but all controllers are managed by the widget wrt
grabs.
All callers have been updated.
Carlos Garnacho [Mon, 26 May 2014 10:38:06 +0000 (12:38 +0200)]
gtk: Update callers of GtkGesturePan orientation
Carlos Garnacho [Mon, 26 May 2014 10:08:55 +0000 (12:08 +0200)]
eventcontroller: Make the event-mask property and methods private.
This will rarely have any use if no subclassing is allowed, so just make it
private for our own.
Carlos Garnacho [Mon, 26 May 2014 09:58:18 +0000 (11:58 +0200)]
gtk: Replace GtkPanOrientation with GtkOrientation
And document GtkOrientation to be more generic. There's little added
value in a separate enum for this.
Matthias Clasen [Tue, 27 May 2014 10:00:21 +0000 (06:00 -0400)]
More label and image sizing fixes
Go back to respecting GtkMisc::xpad/ypad. Not doing so breaks
the misc-alignment reftest. As long as we still derive from
GtkMisc, we may as well do this.
Matthias Clasen [Tue, 27 May 2014 04:21:46 +0000 (00:21 -0400)]
Fix up GtkLabel and GtkImage sizing
When GtkMisc was removed, I forgot to apply the style context
padding. This caused the info-bar-message-types reftest to fail.
Matthias Clasen [Tue, 27 May 2014 03:15:53 +0000 (23:15 -0400)]
Don't use hicolor as the default icon-theme
The icontheme lookup code has a special-case that prefers builtin icons
if the theme name is "hicolor". This is problematic for our reftests,
which run in a barebones environment with not settings.
Matthias Clasen [Mon, 26 May 2014 14:37:34 +0000 (10:37 -0400)]
docs: enum cleanup
Move GtkIMPreeditStyle nad GtkIMStatusStyle to the settings where
they are solely used.
Matthias Clasen [Mon, 26 May 2014 14:24:02 +0000 (10:24 -0400)]
docs: enum cleanup
Move GtkStateType to the GtkWidget apis where it is used, and
mark the enum as deprecated.
Matthias Clasen [Mon, 26 May 2014 14:17:07 +0000 (10:17 -0400)]
docs: remove markup
The overview chapters don't go through shorthand processing, so
don't use them there.
Kalev Lember [Mon, 19 May 2014 11:19:11 +0000 (13:19 +0200)]
GtkApplication: Fix two muxer-related memory leaks
Drop the ref on the action muxer in finalize, and also make sure
shutdown() tears down the muxer setup done in startup().
When GtkApplication adds itself to a muxer, it causes the muxer to take
a ref on the GtkApplication. This has to be undone in shutdown() to make
sure the GtkApplication doesn't end up holding a ref on itself.
https://bugzilla.gnome.org/show_bug.cgi?id=730383
Matthias Clasen [Sun, 25 May 2014 03:30:01 +0000 (23:30 -0400)]
inspector: Allow changing attribute mappings
Matthias Clasen [Sun, 25 May 2014 00:46:30 +0000 (20:46 -0400)]
docs: Move GdkColor off into a deprecated section
Kalev Lember [Sat, 24 May 2014 22:17:55 +0000 (00:17 +0200)]
Bump ATK dependency to 2.12
... for the new AtkValue interface that we implement.
Matthias Clasen [Sat, 24 May 2014 22:41:16 +0000 (18:41 -0400)]
Some more updates
Matthias Clasen [Sat, 24 May 2014 22:18:36 +0000 (18:18 -0400)]
Typo fixes
Matthias Clasen [Sat, 24 May 2014 15:16:35 +0000 (11:16 -0400)]
Organize the icons
Sort the icon list in check-icon-theme.c, and add
comments so we have a chance of keeping the order.
Matthias Clasen [Sat, 24 May 2014 15:06:10 +0000 (11:06 -0400)]
Drop an unused object
A downside of using templates is that we can have 'parasitic'
objects in there that don't get used for anything.
Matthias Clasen [Sat, 24 May 2014 15:01:27 +0000 (11:01 -0400)]
GtkIconTheme: Add more debug spew
Still trying to track down test problems in gnome-continuous.
Jasper St. Pierre [Sat, 24 May 2014 03:01:27 +0000 (23:01 -0400)]
wayland: Add support for show_window_menu
Benjamin Otte [Sat, 24 May 2014 17:38:56 +0000 (19:38 +0200)]
image: Draw the image again
An important line of code was removed in
54d5b426fca71dcda22ea5467054fa801556c20a that lead to an undefined
variable. Add that line back.
Benjamin Otte [Sat, 24 May 2014 14:21:02 +0000 (16:21 +0200)]
combobox: Implement clip
Benjamin Otte [Sat, 24 May 2014 14:20:48 +0000 (16:20 +0200)]
entry: Implement clip
Benjamin Otte [Sat, 24 May 2014 14:16:41 +0000 (16:16 +0200)]
gestureswipe: Fix return value
Benjamin Otte [Sat, 24 May 2014 14:16:32 +0000 (16:16 +0200)]
image: Remove unused variable
Benjamin Otte [Fri, 23 May 2014 14:01:45 +0000 (16:01 +0200)]
button: Implement clip
Benjamin Otte [Fri, 23 May 2014 13:52:16 +0000 (15:52 +0200)]
widget: Include box-shadow in the clip
This allows all widgets that implement clip to use box shadows.
Benjamin Otte [Wed, 21 May 2014 21:13:52 +0000 (23:13 +0200)]
widget: Add _gtk_widget_set_css_clip()
... and use it in GtkBox and GtkGrid.
Benjamin Otte [Mon, 19 May 2014 13:33:28 +0000 (15:33 +0200)]
spinner: Implement clip
We now allow you to gtk-icon-transform() the spinner outside of the
spinners allocation.
Benjamin Otte [Sun, 18 May 2014 14:02:04 +0000 (16:02 +0200)]
API: widget: Add gtk_widget_set_clip() API
And handle the fact that drawing bounds are now handled by this API and
the corresponding gtk_widget_get_clip().
Also add _gtk_widget_supports_clip() function to check if a widget has
been ported to the new world.
Matthias Clasen [Sat, 24 May 2014 14:07:46 +0000 (10:07 -0400)]
docs: Flesh out the inspector section a bit
Matthias Clasen [Sat, 24 May 2014 13:54:06 +0000 (09:54 -0400)]
inspector: Make picking widgets work again
This broke when I accidentally removed the line that adds
each object to the hash table. Bring it back.
Rico Tzschichholz [Sat, 24 May 2014 10:16:56 +0000 (12:16 +0200)]
docs: Fix make dist
Rico Tzschichholz [Sat, 24 May 2014 07:52:41 +0000 (09:52 +0200)]
build: Fix typo
Rico Tzschichholz [Sat, 24 May 2014 07:24:46 +0000 (09:24 +0200)]
gtk: Fix make dist
Rico Tzschichholz [Sat, 24 May 2014 07:23:52 +0000 (09:23 +0200)]
build/win32: Drop a11y library references
In addition to
4a4b23bfad8b30372f78b75e1eb5e68279ff5b09
Rico Tzschichholz [Sat, 24 May 2014 07:22:53 +0000 (09:22 +0200)]
Updated POTFILES.in
Matthias Clasen [Sat, 24 May 2014 05:56:44 +0000 (01:56 -0400)]
docs: more input handling docs
Matthias Clasen [Sat, 24 May 2014 04:47:16 +0000 (00:47 -0400)]
Fix a start/end mixup
The headerbar example in gtk3-demo was showing two start buttons
after the arrow removal.
Matthias Clasen [Fri, 23 May 2014 09:56:52 +0000 (05:56 -0400)]
GtkMisc: Keep gtk_misc_set_alignment working
Now that labels and images no longer use x/yalign in their code,
we need to make gtk_misc_set_alignment set the h/valign for these
widgets, to keep it stumbling along until its final demise.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Fri, 23 May 2014 02:54:18 +0000 (22:54 -0400)]
GtkToolButton: Drop use of GtkMisc
Use h/valign instead of x/yalign.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Fri, 23 May 2014 02:53:52 +0000 (22:53 -0400)]
GtkAssistant: Drop use of GtkMisc
Use halign instead of xalign.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Fri, 23 May 2014 02:53:17 +0000 (22:53 -0400)]
GtkAccelLabel: Drop use of GtkMisc
Just use 0 instead of xpad.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Fri, 23 May 2014 02:51:00 +0000 (22:51 -0400)]
GtkImage: Drop use of GtkMisc::x/yalign
Instead, use GtkWidget::h/valign to position the image inside
the allocation. And just stop using GtkMisc::x/ypad.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Fri, 23 May 2014 01:19:49 +0000 (21:19 -0400)]
GtkLabel: Drop use of GtkMisc::x/yalign
Instead, use GtkWidget::h/valign to position the text inside
the allocation. And just stop using GtkMisc::x/ypad.
https://bugzilla.gnome.org/show_bug.cgi?id=730613
Matthias Clasen [Sat, 24 May 2014 04:00:00 +0000 (00:00 -0400)]
Fix filechooser actionbar visibility
The actionbar was always visible, even when there is no filter
and no extra widget to show. Now we only show it when there is
something to show.
Matthias Clasen [Sat, 24 May 2014 03:00:43 +0000 (23:00 -0400)]
inspector: Treat resources the same as in gtk/
Matthias Clasen [Sat, 24 May 2014 02:59:22 +0000 (22:59 -0400)]
Add two more icon names to check
These were found in the trash monitor.
Matthias Clasen [Sat, 24 May 2014 02:00:51 +0000 (22:00 -0400)]
Drop no-longer-used gtkrc files
These were replaced by css files long ago.
Matthias Clasen [Sat, 24 May 2014 01:56:44 +0000 (21:56 -0400)]
Drop a pointless function
No need to have a finalize function if it just chains
up to the parent class.
Matthias Clasen [Sat, 24 May 2014 01:41:58 +0000 (21:41 -0400)]
Trivial: slight code rearrangement
Matthias Clasen [Sat, 24 May 2014 00:42:47 +0000 (20:42 -0400)]
tests: Stop using GtkAlignment
Fix up all other tests to not use GtkAlignment anymore.
Matthias Clasen [Sat, 24 May 2014 00:42:01 +0000 (20:42 -0400)]
testadjustsize: Keep using an alignment
We are explicitly comparing GtkAlignment with its replacements
here.
Matthias Clasen [Wed, 14 May 2014 03:18:17 +0000 (23:18 -0400)]
gtk-demo: Drop use of GtkAlignment
Matthias Clasen [Sat, 24 May 2014 00:09:08 +0000 (20:09 -0400)]
Deprecate GtkAligment
This has been dangling ever since 3.0.
https://bugzilla.gnome.org/show_bug.cgi?id=645781
Matthias Clasen [Sat, 24 May 2014 00:04:36 +0000 (20:04 -0400)]
Drop an unneeded include
There's no GtkGesture in gtkwidget.h anymore. We do need an include
in gtkwidgetprivate.h though.
Evan Nemerson [Fri, 23 May 2014 04:09:59 +0000 (21:09 -0700)]
a11y: build directly into libgtk instead of an internal library
https://bugzilla.gnome.org/show_bug.cgi?id=730615
Matthias Clasen [Fri, 23 May 2014 21:32:14 +0000 (17:32 -0400)]
More updates
Matthias Clasen [Fri, 23 May 2014 20:11:48 +0000 (16:11 -0400)]
Some updates
Piotr Drąg [Fri, 23 May 2014 18:48:12 +0000 (20:48 +0200)]
Updated POTFILES.in
Carlos Garnacho [Fri, 23 May 2014 17:58:46 +0000 (19:58 +0200)]
Merge branch 'gestures'
Carlos Garnacho [Thu, 22 May 2014 14:04:03 +0000 (16:04 +0200)]
spinbutton: Avoid touch text handles to pop up
Those get in the middle more than help on these widgets, the widget
is already packed with clickable areas and having handles (and their
invisible clickable area around) hovering above don't help, plus the
purpose in most likely numeric values is a bit doubtful.
All touch events are either consumed by the up/down panels, or
the swipe gesture, all GtkEntry handling of touch events on the text
window is avoided, so handles to not appear anymore.
Carlos Garnacho [Thu, 22 May 2014 13:39:31 +0000 (15:39 +0200)]
colorswatch: Set gestures in GTK_PHASE_TARGET
That's the right phase for gestures replacing entirely event handlers.
Carlos Garnacho [Thu, 22 May 2014 13:36:32 +0000 (15:36 +0200)]
spinbutton: Use GTK_PHASE_CAPTURE for touch swipes
The gesture must be able to catch first events for it to be seen
as recognized in event handlers.
Carlos Garnacho [Thu, 22 May 2014 13:24:28 +0000 (15:24 +0200)]
widget: Flip execution order of GTK_PHASE_TARGET/BUBBLE
the "bubble" phase used to run before event handlers before GTK_PHASE_TARGET
was added, in order to keep phases in the expected order, move GTK_PHASE_BUBBLE
to be run (still invariably) after event handlers.
The only behavioral change should be wrt widgets wanting mixed event handler/
gesture handling, they could previously attach the gesture to the bubble phase
and check for gtk_gesture_is_active() in the event handler to bail out, they'll
have to use GTK_PHASE_CAPTURE for that purpose from now on.
Carlos Garnacho [Wed, 21 May 2014 12:58:50 +0000 (14:58 +0200)]
texthandle: Mind the invisible area when moving the handle
The handle is still centered horizontally, but the extra vertical
space wasn't taken into account, leading to misplacing the dragging
point (and the handle) during motion events.
Carlos Garnacho [Wed, 21 May 2014 12:57:07 +0000 (14:57 +0200)]
textview: Check first whether the sequence is handled, fetch later the event
And always unset/hide the selection popover if unhandled, that means the
sequence went grabbed/claimed somewhere else and cancelled here.
Carlos Garnacho [Wed, 21 May 2014 12:51:46 +0000 (14:51 +0200)]
entry: Check first whether the sequence is handled, fetch later the event
And always unset/hide the selection popover if unhandled, that means the
sequence went grabbed/claimed somewhere else and cancelled here.
Carlos Garnacho [Tue, 20 May 2014 12:10:31 +0000 (14:10 +0200)]
gesture: Use GdkEventSequence GType in signals
Carlos Garnacho [Tue, 20 May 2014 12:09:40 +0000 (14:09 +0200)]
gesture: Introspection fixes
Set annotations on return values for gtk_gesture_get_device() and
gtk_gesture_get_window().
Carlos Garnacho [Tue, 20 May 2014 12:08:27 +0000 (14:08 +0200)]
eventcontroller: introspection fix
Set transfer annotation on gtk_event_controller_get_widget()
Carlos Garnacho [Tue, 20 May 2014 12:07:16 +0000 (14:07 +0200)]
gdk: Make GdkEventSequence a boxed type
Not much to copy nor free, but this'll make bindings happy
Carlos Garnacho [Mon, 19 May 2014 21:02:49 +0000 (23:02 +0200)]
paned: Handle pointer events from touchscreen devices
GtkPaned may just capture pointer events because the child widget
doesn't happen to have GDK_TOUCH_MASK set, resort to checking the
device in that case.
Matthias Clasen [Tue, 20 May 2014 02:16:03 +0000 (22:16 -0400)]
Docs: Cosmetic fixes
Matthias Clasen [Tue, 20 May 2014 01:46:30 +0000 (21:46 -0400)]
docs: Correct a reference
Matthias Clasen [Tue, 20 May 2014 01:41:35 +0000 (21:41 -0400)]
Revert "docs: GtkEventController was dropped from public api"
This reverts commit
eefac03b395a6b885fd61c100b48652200beb996.
Matthias Clasen [Tue, 20 May 2014 01:41:21 +0000 (21:41 -0400)]
Revert "docs: More GtkEventController removal"
This reverts commit
75f503fb1fc9068c9e1a0d02126c55addbe8eb3e.
Matthias Clasen [Tue, 20 May 2014 01:24:46 +0000 (21:24 -0400)]
Docs: Add information about event propagation
Matthias Clasen [Tue, 20 May 2014 00:45:42 +0000 (20:45 -0400)]
Docs: Minor changes
Matthias Clasen [Tue, 20 May 2014 00:17:12 +0000 (20:17 -0400)]
Document gtk_gesture_set_state
Matthias Clasen [Tue, 20 May 2014 00:10:48 +0000 (20:10 -0400)]
docs: gtk_gesture_cancel_sequence was made private
Matthias Clasen [Tue, 20 May 2014 00:00:31 +0000 (20:00 -0400)]
docs: More GtkEventController removal
Matthias Clasen [Mon, 19 May 2014 23:37:16 +0000 (19:37 -0400)]
docs: GtkEventController was dropped from public api
Carlos Garnacho [Mon, 19 May 2014 17:58:54 +0000 (19:58 +0200)]
paned: Use GtkGesture to handle handle dragging
Dragging is all handled by a GtkGesturePan now, matching the
paned orientation.
On touch events, a wider area is listened for, so touch events
don't need to be as accurate to initiate dragging, if no dragging
is truly initiated in this case, events are just forwarded for
child widgets to handle.
Carlos Garnacho [Mon, 19 May 2014 14:08:56 +0000 (16:08 +0200)]
switch: Use GtkGesture to handle input events
A pan gesture is used to handle switch dragging, which is only triggered
by horizontal panning movements. A multipress gesture handles the cases
where clicking without dragging happens, just toggling the switch.
Matthias Clasen [Fri, 16 May 2014 23:44:43 +0000 (19:44 -0400)]
inspector: Add more complete gesture support
Add a dedicated tab that shows how gestures are grouped,
and allows changing the propagation phase.
Matthias Clasen [Fri, 16 May 2014 18:27:58 +0000 (14:27 -0400)]
inspector: Minimal support for gestures
We're just showing them as objects in the tree, for now.
Matthias Clasen [Fri, 16 May 2014 17:14:13 +0000 (13:14 -0400)]
Add back a private api to list controllers
This will let us show them in the inspector.
Carlos Garnacho [Fri, 16 May 2014 17:59:31 +0000 (19:59 +0200)]
texthandle: Make a bigger hit area around texthandles
The hit area now extends to all sides around the handle, instead
of just towards where the text is. This makes it easier to grab
handles once shown.
Carlos Garnacho [Fri, 16 May 2014 17:35:08 +0000 (19:35 +0200)]
gesture: Declare GtkGesture:window as an object property
Carlos Garnacho [Fri, 16 May 2014 16:58:11 +0000 (18:58 +0200)]
widget: 3-way merge ate my g_object_ref()
Move it to the right place.
Carlos Garnacho [Fri, 16 May 2014 16:35:45 +0000 (18:35 +0200)]
scrolledwindow: Handle directional cancellation if there is a single scroll direction
A pan gesture is optionally attached if there is only one scrolling direction, the pan
gesture orientation is changed so movements tangential to the scroll direction get
scrolling cancelled (The pan gesture is automatically denied when that happens, and
that state change spreads to the others gestures in the group). If the pan direction
happens in the expected directions, no cancellation happens, and scrolling eventually
takes place.
Carlos Garnacho [Fri, 16 May 2014 16:34:15 +0000 (18:34 +0200)]
widget: remove check on whether the controller was already added
Multiple calls are supposedly allowed to change the phase (although
unlikely to happen), so remove the g_return_if_fail() checking whether
the controller was already added.
Carlos Garnacho [Fri, 16 May 2014 16:33:05 +0000 (18:33 +0200)]
pan: Remove wrong check
From the very early days where there were a NONE=0 GtkPanOrientation
value. This makes vertical pan operations work as expected.
Carlos Garnacho [Fri, 16 May 2014 15:46:12 +0000 (17:46 +0200)]
entry: Ensure the cursor text handle is shown after touching to reposition cursor.
Carlos Garnacho [Fri, 16 May 2014 15:38:28 +0000 (17:38 +0200)]
popover: Hide widget first when disposing
In order to ensure invariants are kept.